#include <stdio.h>
#include "snake.h"
#include "arene.h"
#include "jeux.h"

void jeuInit(Jeu *pJeu)
{
    snakeInit(&(pJeu->serpent));
    areneInit(&(pJeu->are));
}

void jeuActionClavier(Jeu *pJeu, const char touche)
{
    switch(touche)
    {
    case 'g' :
        snakeGaucheDir(&(pJeu->serpent), &(pJeu->are));
        break;
    case 'd' :
        snakeDroiteDir(&(pJeu->serpent), &(pJeu->are));
        break;
    case 'h' :
        snakeHautDir(&(pJeu->serpent), &(pJeu->are));
        break;
    case 'b' :
        snakeBasDir(&(pJeu->serpent), &(pJeu->are));
        break;
    }
}

void jeuEvolue(Jeu *pJeu)
{

    switch(pJeu->serpent.deplacementEnCour)
    {
    case H :
        snakeHaut(&(pJeu->serpent),&(pJeu->are));
        break;
    case B :
        snakeBas(&(pJeu->serpent),&(pJeu->are));
        break;
    case D :
        snakeDroite(&(pJeu->serpent),&(pJeu->are));
        break;
    case G :
        snakeGauche(&(pJeu->serpent),&(pJeu->are));
        break;
    case I :
        snakeLibere(&(pJeu->serpent));
        snakeInit(&(pJeu->serpent));
        break;
    }
}

Snake *jeuGetSnakePtr(Jeu *pJeu)
{
    return &(pJeu->serpent);
}

Arene * JeuGetArenePtr(Jeu *pJeu)
{
    return &(pJeu->are);
}


const Arene *jeuGetConstArenePtr(const Jeu *pJeu)
{
    return &(pJeu->are);
}

const Snake *jeuGetConstSnakePtr(const Jeu *pJeu)
{
    return &(pJeu->serpent);
}

const Liste *jeuGetConstQueuPtr(const Jeu *pJeu)
{
    return pJeu->serpent.queu;
}


void jeuLibere(Jeu *pJeu)
{
    areneLibere(&(pJeu->are));
    snakeLibere(&(pJeu->serpent));
}


